package com.dc.service.impl;

import java.util.List;

import com.dc.dao.ProductTypeDao;
import com.dc.dao.impl.ProductTypeDaoImpl;
import com.dc.entity.Product;
import com.dc.entity.ProductType;
import com.dc.service.ProductTypeService;
import com.dc.tools.DBTools;
import com.dc.tools.PageData;

public class ProductTypeServiceImpl implements ProductTypeService {

	// 实例化DAO
	ProductTypeDao ptd = new ProductTypeDaoImpl();

	
	/**
	 * 增加方法，增加前先判断是否已经存在
	 */
	@Override
	public boolean addProductType(ProductType producttype) {
		if (producttype == null) {
			return false;
		}
		// 先调用DAO中的查询方法查看是否存在同名
		ProductType pt = ptd.selectProductTypeByName(producttype.getTypename());
		if (pt != null) {
			// 查到了记录
			return false;
		}
		//没有查到  调用增加的方法,并返回结果
		return ptd.addProductType(producttype);
	}
	
	

	/**
	 * 按照类型名称删除
	 */
	@Override
	public boolean deleteProductType(int typeid) {
		//删除之前先判断这个类型下是否有餐品
		//如果有就不能删除
		//如果没有就删除
		String sql = "select * from product where typeid = ?";
		//调用工具中的查询方法
		List<Product> list =(List<Product>) DBTools.exQuery(sql, Product.class, typeid);
		System.out.println("list"+list);
		if(list.size() != 0) {
			return false;
		}
		//调用DAO中的删除方法
		return ptd.deleteProductType(typeid);
	}
	
	

	/**
	 * 按照类型编号修改
	 */
	@Override
	public boolean updateProductType(ProductType producttype) {
		//调用DAO中的修改方法
		return ptd.updateProductType(producttype);
	}

	
	/**
	 * 按照名称关键字查询
	 */
	@Override
	public List<ProductType> selectProductTypeByLike(String keywords) {
		//调用DAO中的查询方法
		return ptd.selectProductTypeByLike(keywords);
	}
	
	/**
	 * 按照名称关键字分页查询
	 */
	@Override
	public PageData<ProductType> selectProductTypeByPage(int page, int pageSize, String keywords) {
		if(page<1) {
			page = 1;
		}
		//调用DAO中的分页查询方法
		PageData pd = ptd.selectProductTypeByPage(page, pageSize, keywords);
		return pd;
	}
	
	/**
	 * 查询所有，用于Ajax请求
	 */
	@Override
	public List<ProductType> selectProductType() {
		// TODO Auto-generated method stub
		return ptd.selectProductTypeByLike("");
	}
	
	/**
	 *按照类型编号查询，用于判断
	 */
	@Override
	public List<ProductType> selectProductTypeById(int typeid) {
		// TODO Auto-generated method stub
		return ptd.selectProductTypeById(typeid);
	}

}
